import { ElMessage, ElMessageBox } from 'element-plus'
import router from '@/router'

/**
 * 显示成功消息
 * @param {string} message 消息内容
 */
export function showSuccess(message) {
  ElMessage({
    message,
    type: 'success',
    duration: 3000
  })
}

/**
 * 显示警告消息
 * @param {string} message 消息内容
 */
export function showWarning(message) {
  ElMessage({
    message,
    type: 'warning',
    duration: 3000
  })
}

/**
 * 显示错误消息
 * @param {string} message 消息内容
 */
export function showError(message) {
  ElMessage({
    message,
    type: 'error',
    duration: 5000
  })
}

/**
 * 显示信息消息
 * @param {string} message 消息内容
 */
export function showInfo(message) {
  ElMessage({
    message,
    type: 'info',
    duration: 3000
  })
}

// 确认对话框
export const showConfirm = (message, title = '提示') => {
  return ElMessageBox.confirm(
    message,
    title,
    {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type: 'warning'
    }
  )
}

/**
 * 处理API错误
 * @param {Error} error 错误对象
 */
export function handleApiError(error) {
  let message = '请求失败'
  
  if (error.response) {
    const { status } = error.response
    
    switch (status) {
      case 400:
        message = '请求错误'
        break
      case 401:
        message = '未授权，请重新登录'
        break
      case 403:
        message = '拒绝访问'
        break
      case 404:
        message = '请求地址不存在'
        break
      case 500:
        message = '服务器内部错误'
        break
      default:
        message = `请求失败(${status})`
    }
    
    // 如果响应中包含详细错误信息，则使用它
    if (error.response.data && error.response.data.message) {
      message = error.response.data.message
    }
  } else if (error.request) {
    message = '服务器未响应'
  }
  
  showError(message)
} 